home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / PRG / PL 2.0 SupplementDoc Folder.sit / PL 2.0 SupplementDoc Folder / Documentation / Preface SECOND EDITION < prev    next >
Text File  |  1995-03-23  |  11KB  |  175 lines

  1.  
  2. Preface
  3.  
  4. SECOND EDITION
  5.  
  6. Common Lisp has succeeded. Since publication of the first edition of this book
  7. in 1984, many implementors have used it as a de facto standard for Lisp
  8. implementation. As a result, it is now much easier to port large Lisp programs
  9. from one implementation to another. Common Lisp has proved to be a useful and
  10. stable platform for rapid prototyping and systems delivery in artificial
  11. intelligence and other areas. WIth experience gained in using Common Lisp for
  12. so many applications, implementors found no shortage of opportunities for
  13. innovation. One of the important characteristics of Lisp is its good support
  14. for experimental extension of the language; while Common Lisp has been stable,
  15. it has not stagnated.
  16.  
  17. The 1984 definition of Common Lisp was imperfect and incomplete. In some cases
  18. this was inadvertent: some odd boundary situation was overlooked and its
  19. consequences not specified, or different passages in were conflict, or some
  20. property of Lisp was so well-known and traditionally relied upon that I forgot
  21. to write it down. In other cases the informal committee that was defining
  22. Common Lisp could not settle on a solution, and therefore agreed to leave some
  23. important aspect of the language unspecified rather than choose a less than
  24. satisfactory definition. An example is error handling; 1984 Common Lisp had
  25. plenty of ways to signal errors but no way for a program to trap or process
  26. them.
  27.  
  28. Over the next year I collected reports of errors in the book and gaps in the
  29. language. In December 1985, a group of implementors and users met in Boston to
  30. discuss the state of Common Lisp. I prepared two lists for this meeting, one of
  31. errata and clarifications that I thought would be relatively uncontroversial
  32. (boy, was I wrong!) and one of more substantial changes I thought should be
  33. considered and perhaps voted upon. Others also brought proposals to discuss. It
  34. became clear to everyone that there was now enough interest in Common Lisp, and
  35. dependence on its stability, that a more formal mechanism was needed for
  36. managing changes to the language.
  37.  
  38. This realization led to the formation of X3J13, a subcommittee of ANSI
  39. committee X3, to produce a formal American National Standard for Common Lisp.
  40. That process is nearing completion. X3J13 has completed the bulk of its
  41. technical work in rectifying the 1984 definition and codifying extensions to
  42. that definition that have received widespread use and approval. A draft
  43. standard is now being prepared; it will probably be available in 1990. There
  44. will then be a period (required by ANSI) for public review. X3J13 must then
  45. consider the comments it receives and respond appropriately. If the comments
  46. result in substantial changes to the draft standard, multiple public review
  47. periods may be required before the draft can be approved as an American
  48. National Standard.
  49.  
  50. Fortunately, X3J13 has done an outstanding job of documenting its work. For
  51. every change that came to a formal vote, a document was prepared that described
  52. the problem to be solved and one or more solutions. For each solution there is
  53. a detailed proposal for changing the language; a rationale; test cases that
  54. distinguish the proposal from the status quo or from other proposals for
  55. solving that problem; discussions of current practice, cost to implementors,
  56. cost to users, cost of not adopting the proposal, benefits of adoption,
  57. aesthetic criteria; and any relevant informal discussion that may have preceded
  58. creation of the formal proposal. All of these proposal documents were made
  59. available on-line as well as in paper form. By my count, by June 1989 some 186
  60. such proposals were approved as language changes. (This count does not include
  61. many proposals that came before the committee but were rejected.)
  62.  
  63. The purpose of this second edition is to bridge the gap between the first
  64. edition and the forthcoming ANSI standard for Common Lisp. Because of the
  65. requirement for formal public review, it will be some time yet before the ANSI
  66. standard is final. This book in no way resembles the forthcoming standard
  67. (which is being written independently by Kathy Chapman of Digital Equipment
  68. Corporation with assistance from the X3J13 Drafting Subcommittee).
  69.  
  70. I have incorporated into this second edition a great deal of material based on
  71. the votes of X3J13, in order to give the reader a picture of where the language
  72. is heading. My purpose here is not simply to quote the X3J13 documents verbatim
  73. but to paraphrase them and relate them to the structure of the first edition. A
  74. single vote by X3J13 may be discussed in many parts of this book, and a single
  75. passage of this book may be affected by many of the votes.
  76.  
  77. I wish to be very clear: this book is not an official document of X3J13, though
  78. it is based on publicly available material produced by X3J13. In no way does
  79. this book constitute a definitive description of the forthcoming ANSI standard.
  80. The committee's decisions have been remarkably stable (it has rescinded earlier
  81. decisions only two or three times), and I do not expect radical changes in
  82. direction. Nevertheless, it is quite probable that the draft standard will be
  83. substantively revised in response to editorial review or public comment. I have
  84. therefore reported here on the actions of X3J13 not to inscribe them in stone,
  85. but to make clear how the language of the first edition is likely to change. I
  86. have tried to be careful in my wording to avoid saying ``the language has been
  87. changed'' and to state simply that ``X3J13 voted at such-and-so time to make
  88. the following change.''
  89.  
  90. Until the day when an official ANSI Common Lisp standard emerges, it is likely
  91. that the 1984 definition of Common Lisp will continue to be used widely. This
  92. book has been designed to be used as a reference both to the 1984 definition
  93. and to the language as modified by the actions of X3J13.
  94.  
  95. It contains the entire text of the first edition of Common Lisp: The Language,
  96. with corrections and minor editorial changes; however, more than half of the
  97. material in this edition is new. All new material is identified by solid lines
  98. in the left margin. Dotted lines in the left margin indicate material from the
  99. first edition that applies to the 1984 definition but that has been modified by
  100. a vote of X3J13. Modifications to these outmoded passages are explained by
  101. preceding or following text (which will have a solid line in the margin). In
  102. summary:
  103.  
  104.    *  To use the 1984 language definition, read all material that does not have
  105.      a solid line in the margin.
  106.    *  To use the updated language definition, read everything, but be wary of
  107.      material with a dotted line in the margin.
  108.  
  109. At the end of the book is an index of the X3J13 votes, ordered by the
  110. committee's internal code names (included to ease cross-reference to the X3J13
  111. documents, which may be useful during the public review periods). References to
  112. this list of votes appear as numbers in angle brackets; thus ``<14>'' refers to
  113. the vote on issue number 14, whereas ``[14]'' refers to reference 14 in the
  114. bibliography.
  115.  
  116. I have kept changes to the wording of the first-edition material to a minimum.
  117. Obvious spelling and typographical errors have been corrected, and the entire
  118. text has been edited to a uniform style of spelling and punctuation. (Note in
  119. particular that the first edition used the spelling ``signalling'' but this
  120. edition, in deference to the style decision of the X3J13 Drafting Subcommittee,
  121. uses ``signaling.'') A few minor changes were made to accommodate typographical
  122. or layout constraints. (For example, the word ``also'' has been deleted from
  123. the first sentence of chapter 1, partly to make that paragraph look better and
  124. partly to allow a better page break at the bottom of page 2.) In a very few
  125. cases the first edition contained substantive errors that I could not in good
  126. conscience correct silently; these have been flagged by paragraphs beginning
  127. with the phrase Notice of correction.
  128.  
  129. The chapter and section numbering of this edition matches that of the first
  130. edition, with the exception that a new section 7.9 has been interpolated. Four
  131. new chapters (26-29) describe substantial changes approved by X3J13: an
  132. extended loop macro, a pretty printer interface, the Common Lisp Object System,
  133. and the Common Lisp Condition System.
  134.  
  135. X3J13, in the course of its work, formed a subcommittee to study whether
  136. additional means of iteration should be standardized for use in Common Lisp,
  137. for a great deal of existing practice in this area was not included in the
  138. first edition because of lack of agreement in 1984. The X3J13 Iteration
  139. Subcommittee produced reports on three possible facilities. One (loop) was
  140. approved for inclusion in the forthcoming draft standard and is described in
  141. chapter 26.
  142.  
  143. X3J13 expressed interest in the other two approaches (series and generators),
  144. but the consensus as of January 1989 was that these other approaches were not
  145. yet sufficiently mature or in sufficiently widespread use to warrant inclusion
  146. in the draft Common Lisp standard at that time. However, the subcommittee was
  147. directed to continue work on these approaches and X3J13 is open to the
  148. possibility of standardizing them at a later date. Please note that I do not
  149. wish the prejudge the question of whether X3J13 will ever choose to make the
  150. other two proposals the subject of standardization. Nevertheless, I have chosen
  151. to include them in the second edition, in cooperation with Dr. Richard C.
  152. Waters, as appendices A and B, in order to make these ideas available to the
  153. Lisp community. In my judgement these proposals address an area of language
  154. design not otherwise covered by Common Lisp and are likely to have practical
  155. value even if they are never adopted as part of a formal standard.
  156.  
  157. Some new material in this book has nothing to do with the work of X3J13. In
  158. many places I have added explanations, clarifications, new examples, warnings,
  159. and tips on writing portable code. Appendix C contains a piece of code that may
  160. help in understanding the backquote syntax.
  161.  
  162. This second edition, unlike the first edition, also includes a few diagrams to
  163. pep up the text. However, there are absolutely no new jokes, and very few
  164. outright lies.
  165.  
  166. -------------------------------------------------------------------------------
  167. [next]  [up] [previous]  [contents] [index]
  168. Next: Acknowledgments SECOND EDITION Up: Common Lisp the Language Previous:
  169. Contents
  170. -------------------------------------------------------------------------------
  171.  
  172. -------------------------------------------------------------------------------
  173.  
  174. AI.Repository@cs.cmu.edu
  175.